package com.lesso.lzh.sunflower.model;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.PositiveOrZero;
import java.io.Serializable;
import java.time.LocalDate;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("rel_employee_device")
public class RelEmployeeDevice extends BaseModel<RelEmployeeDevice> {
    private static final long serialVersionUID = 1L;

    /**
     * 员工ID（非空，正整数）
     */
    @NotNull(message = "员工ID不能为空")
    @Positive(message = "员工ID必须为正整数")
    @TableField("employee_id")
    private Long employeeId;

    /**
     * 设备编码（非空，关联设备表）
     */
    @NotBlank(message = "设备编码不能为空")
    @TableField("device_code")
    private String deviceCode;

    /**
     * 授权日期（非空）
     */
    @NotNull(message = "授权日期不能为空")
    @TableField("authorization_date")
    private LocalDate authorizationDate;

    /**
     * 授权状态：1-已授权，2-已取消（非空，只能为1或2）
     */
    @NotNull(message = "授权状态不能为空")
    @PositiveOrZero(message = "授权状态只能为1或2")
    @TableField("authorization_status")
    private Integer authorizationStatus;

    /**
     * 删除标识：0-正常，1-删除（默认0）
     */
    @TableLogic
    @TableField("del_status")
    private Integer delStatus; // 可额外添加@Pattern注解限制取值范围
}